#ifndef __WIZ_ALGEBRA_VECTOR_BASE_HPP__SHANHAOBO_19800429__
#define __WIZ_ALGEBRA_VECTOR_BASE_HPP__SHANHAOBO_19800429__

namespace Wiz
{
    namespace Vector
    {
        namespace Base
        {
#       pragma pack(push, 1)
            template<typename ElementT, int Num>
            struct Type
            {
                ////////////////////////////////////////////////////////////////
                enum
                {
                    eCount = Num
                };
                ////////////////////////////////////////////////////////////////
                typedef ElementT          tElement;
                typedef tElement          tElementArray[eCount];
                ////////////////////////////////////////////////////////////////
                tElement                  e[eCount];
                ////////////////////////////////////////////////////////////////
                Type()
                {}
                Type(const tElement& InEle)
                {
                    ::Wiz::Int::Type i;
                    for (i = 0; i < eCount; i++)
                    {
                        this->e[i] = InEle;
                    }
                }
                Type(const Type<tElement, Num>& InOther)
                {
                    ::Wiz::Int::Type i;
                    for (i = 0; i < eCount; i++)
                    {
                        this->e[i] = InOther.e[i];
                    }
                }
                ////////////////////////////////////////////////////////////////
            };
#       pragma pack(pop)
        } /// end of namespace Base
    } /// end of namespace Vector
} /// end of namespace Wiz

#endif /*__WIZ_ALGEBRA_VECTOR_BASE_HPP__SHANHAOBO_19800429__*/
